/*
 * TipoInterfaz.java
 * Copyright 2010 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 18/04/2010, 09:10:51 PM
 */

package com.ufps.cuatro.util;

/**
 * <i><b>TipoInterfaz:</b></i>Representa el Tipo de Interfaz que se utilizará
 * para configurar un Caso.
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 18/04/2010
 */
public enum TipoInterfaz {
    /**
     * Indica generalmente un Error en el Análisis.
     */
    eIndefinido,
    /**
     * Indica que el caso no necesita una interfaz para su configuración.
     */
    eNoDisponible,
    /**
     * Indica que el caso ha sido configurado automaticamente.
     */
    eOK,
    /**
     * Indica un caso para un tipo Primitivo (Es posible que este caso no se
     * implemente ya que para estos tipos de datos existen unos modelos
     * previamente configurados).
     */
    eAtributoPrimitivo,
    /**
     * Indica una caso para una Clase del mundo analizado, generalmente usa
     * una interfaz donde se configuran que propiedades serán utilizadas
     * en la representación gráfica.
     */
    eAtributoClaseMundo,
    /**
     * Indica un caso de un objeto contenedor indefinido, por defecto la interfaz
     * ofrece el contenedor y luego se selecciona el tipo de objeto que contendra
     * generalmente el objeto debe ser reconocido en la implementación.
     */
    eAtributoCollection,
    /**
     * Indica un caso para un tipo registrado en el JDK (Es posible que este caso no se
     * implemente ya que para estos tipos de datos existen unos modelos
     * previamente configurados).
     */
    eAtributoJDKRegistrado,
    /**
     * Indica un caso para un tipo del JDK pero que no tiene un modelo asignado
     * este tipo de objeto es accedido por medio de reflexión para obtener su
     * estructura y luego seleccionar que propiedades serán utilizadas en su
     * representación gráfica.
     */
    eAtributoJDKNoRegistrado,    
    /**
     * Indica un caso para un tipo de Enumeración.
     */
    eAtributoEnumeracion,    
    /**
     * Indica que la interfaz para el caso analizado ha sido definida previamente.
     */
    eDefinidaPreviamente,
    /**
     * Indica un caso para un array de tipos primitivos.
     */
    eAtributoArrayPrimitivo,
    /**
     * Indica un caso para un array de tipos del JDK registrado en los modelos.
     */
    eAtributoArrayJDKRegistrado,
    /**
     * Indica un caso para un array de Clases del Mundo analizado.
     */
    eAtributoArrayClaseMundo,
    /**
     * Indica un caso para un array de contenedores.
     */
    eAtributoArrayCollection,
    /**
     * Indica un caso para un array de Objetos del JDK No Registrados en los modelos.
     */
    eAtributoArrayJDKNoRegistrado,
    /**
     * Indica un caso para un array de Enumeraciones.
     */
    eAtributoArrayEnumeracion,
    /**
     * Indica un caso para un tipo Primitivo (Es posible que este caso no se
     * implemente ya que para estos tipos de datos existen unos modelos
     * previamente configurados).
     */
    eReturnPrimitivo,
    /**
     * Indica una caso para una Clase del mundo analizado, generalmente usa
     * una interfaz donde se configuran que propiedades serán utilizadas
     * en la representación gráfica.
     */
    eReturnClaseMundo,
    /**
     * Indica un caso de un objeto contenedor indefinido, por defecto la interfaz
     * ofrece el contenedor y luego se selecciona el tipo de objeto que contendra
     * generalmente el objeto debe ser reconocido en la implementación.
     */
    eReturnCollection,
    /**
     * Indica un caso para un tipo registrado en el JDK (Es posible que este caso no se
     * implemente ya que para estos tipos de datos existen unos modelos
     * previamente configurados).
     */
    eReturnJDKRegistrado,
    /**
     * Indica un caso para un tipo del JDK pero que no tiene un modelo asignado
     * este tipo de objeto es accedido por medio de reflexión para obtener su
     * estructura y luego seleccionar que propiedades serán utilizadas en su
     * representación gráfica.
     */
    eReturnJDKNoRegistrado,
    /**
     * Indica un caso para un tipo de Enumeración.
     */
    eReturnEnumeracion,
    /**
     * Indica un caso para un array de tipos primitivos.
     */
    eReturnArrayPrimitivo,
    /**
     * Indica un caso para un array de tipos del JDK registrado en los modelos.
     */
    eReturnArrayJDKRegistrado,
    /**
     * Indica un caso para un array de Clases del Mundo analizado.
     */
    eReturnArrayClaseMundo,
    /**
     * Indica un caso para un array de contenedores.
     */
    eReturnArrayCollection,
    /**
     * Indica un caso para un array de Objetos del JDK No Registrados en los modelos.
     */
    eReturnArrayJDKNoRegistrado,
    /**
     * Indica un caso para un array de Enumeraciones.
     */
    eReturnArrayEnumeracion,
    /**
     * Indica un caso para un método que devuelve un tipo primitivo y que recibe
     * parametros.
     */
    eMethodPrimitivoConParametros,
    /**
     * Indica un caso para un método que devuelve un tipo del JDK registrado
     * en los modelos y que recibe parametros.
     */
    eMethodJDKRegistradoConParametros,
    /**
     * Indica un caso para un método que devuelve una clase del Mundo analizado y que recibe
     * parametros.
     */
    eMethodClaseMundoConParametros,
    /**
     * Indica un caso para un método que devuelve un tipo Contenedor y que recibe
     * parametros.
     */
    eMethodCollectionConParametros,
    /**
     * Indica un caso para un método que devuelve un tipo del JDK no registrado
     * en los modelos y que recibe parametros.
     */
    eMethodJDKNoRegistradoConParametros,
    /**
     * Indica un caso para un método que devuelve un tipo de Enumeración y
     * recibe parametros.
     */
    eMethodEnumeracionConParametros,
    /**
     * Indica un caso para un método que devuelve un tipo primitivo y no recibe
     * parametros.
     */
    eMethodPrimitivoSinParametros,
    /**
     * Indica un caso para un método que devuelve un tipo del JDK registrado
     * en los modelos y no recibe parametros.
     */
    eMethodJDKRegistradoSinParametros,

    /**
     * Indica un caso para un método que devuelve una clase del mundo analizado.
     */
    eMethodClaseMundoSinParametros,
    /**
     * Indica un caso para un método que devuelve un contenedor.
     */
    eMethodCollectionSinParametros,
    /**
     * Indica un caso para un método que devuelve un Objeto del JDK no registrado
     * en los modelos.
     */
    eMethodJDKNoRegistradoSinParametros,
    /**
     * Indica un caso para un método que devuelve un tipo de Enumeración.
     */
    eMethodEnumeracionSinParametros,
    /**
     * Indica un caso para un método que devuelve un array de tipos primitivos
     * y recibe parametros.
     */
    eMethodArrayPrimitivoConParametros,
    /**
     * Indica un caso para un método que devuelve un array de Objetos del JDK
     * registrados en los modelos y recibe parametros.
     */
    eMethodArrayJDKRegistradoConParametros,
    /**
     * Indica un caso para un método que devuelve un array de clases del mundo
     * analizado y recibe parametros.
     */
    eMethodArrayClaseMundoConParametros,
    /**
     * Indica un caso para un método que devuelve un array de contenedores
     * y recibe parametros.
     */
    eMethodArrayCollectionConParametros,
    /**
     * Indica un caso para un método que devuelve un array de Objetos del JDK
     * no registrados en los modelos y recibe parametros.
     */
    eMethodArrayJDKNoRegistradoConParametros,
    /**
     * Indica un caso para un método que devuelve un array de Enumeraciones y
     * recibe parametros.
     */
    eMethodArrayEnumeracionConParametros,
    /**
     * Indica un caso para un método que devuelve un array de tipos Primitivos.
     */
    eMethodArrayPrimitivoSinParametros,
    /**
     * Indica un caso para un método que devuelve un array de tipos del JDK
     * registrados en los modelos.
     */
    eMethodArrayJDKRegistradoSinParametros,
    /**
     * Indica un caso para un método que devuelve un array de clases del mundo
     * analizado.
     */
    eMethodArrayClaseMundoSinParametros,
    /**
     * Indica un caso para un método que devuelve un array de objetos contenedores.
     */
    eMethodArrayCollectionSinParametros,
    /**
     * Indica un caso para un método que devuelve un array de tipos del JDK
     * no registrados en los modelos.
     */
    eMethodArrayJDKNoRegistradoSinParametros,
    /**
     * Indica un caso para un método que devuelve un array de Enumeraciones.
     */
    eMethodArrayEnumeracionSinParametros,
    /**
     * Indica un caso especial, el cual se refiere a un método que no devuelve
     * valor pero recibe parametros este caso puede ser representado con
     * metodos que realizan alguna acción predeterminada.
     */
    eMethodNoDevuelveConParametros,
    /**
     * Indica un caso especial, el cual se refiere a un método que no devuelve
     * valor ni tampoco recibe parametros este caso puede ser representado con
     * metodos que realizan alguna acción predeterminada.
     */
    eMethodNoDevuelveSinParametros,
    /**
     * Indica un caso para un tipo Primitivo (Es posible que este caso no se
     * implemente ya que para estos tipos de datos existen unos modelos
     * previamente configurados).
     */
    eParametroPrimitivo,
    /**
     * Indica una caso para una Clase del mundo analizado, generalmente usa
     * una interfaz donde se configuran que propiedades serán utilizadas
     * en la representación gráfica.
     */
    eParametroClaseMundo,
    /**
     * Indica un caso de un objeto contenedor indefinido, por defecto la interfaz
     * ofrece el contenedor y luego se selecciona el tipo de objeto que contendra
     * generalmente el objeto debe ser reconocido en la implementación.
     */
    eParametroCollection,
    /**
     * Indica un caso para un tipo registrado en el JDK (Es posible que este caso no se
     * implemente ya que para estos tipos de datos existen unos modelos
     * previamente configurados).
     */
    eParametroJDKRegistrado,
    /**
     * Indica un caso para un tipo del JDK pero que no tiene un modelo asignado
     * este tipo de objeto es accedido por medio de reflexión para obtener su
     * estructura y luego seleccionar que propiedades serán utilizadas en su
     * representación gráfica.
     */
    eParametroJDKNoRegistrado,
    /**
     * Indica un caso para un tipo de Enumeración.
     */
    eParametroEnumeracion,
    /**
     * Indica un caso para un array de tipos primitivos.
     */
    eParametroArrayPrimitivo,
    /**
     * Indica un caso para un array de tipos del JDK registrado en los modelos.
     */
    eParametroArrayJDKRegistrado,
    /**
     * Indica un caso para un array de Clases del Mundo analizado.
     */
    eParametroArrayClaseMundo,
    /**
     * Indica un caso para un array de contenedores.
     */
    eParametroArrayCollection,
    /**
     * Indica un caso para un array de Objetos del JDK No Registrados en los modelos.
     */
    eParametroArrayJDKNoRegistrado,
    /**
     * Indica un caso para un array de Enumeraciones.
     */
    eParametroArrayEnumeracion,
    /**
     * Indica un caso para un tipo Primitivo (Es posible que este caso no se
     * implemente ya que para estos tipos de datos existen unos modelos
     * previamente configurados).
     */
    ePrimitivo,
    /**
     * Indica una caso para una Clase del mundo analizado, generalmente usa
     * una interfaz donde se configuran que propiedades serán utilizadas
     * en la representación gráfica.
     */
    eClaseMundo,
    /**
     * Indica un caso de un objeto contenedor indefinido, por defecto la interfaz
     * ofrece el contenedor y luego se selecciona el tipo de objeto que contendra
     * generalmente el objeto debe ser reconocido en la implementación.
     */
    eCollection,
    /**
     * Indica un caso para un tipo registrado en el JDK (Es posible que este caso no se
     * implemente ya que para estos tipos de datos existen unos modelos
     * previamente configurados).
     */
    eJDKRegistrado,
    /**
     * Indica un caso para un tipo del JDK pero que no tiene un modelo asignado
     * este tipo de objeto es accedido por medio de reflexión para obtener su
     * estructura y luego seleccionar que propiedades serán utilizadas en su
     * representación gráfica.
     */
    eJDKNoRegistrado,
    /**
     * Indica un caso para un tipo de Enumeración.
     */
    eEnumeracion,
    /**
     * Indica un caso para un array de tipos primitivos.
     */
    eArrayPrimitivo,
    /**
     * Indica un caso para un array de tipos del JDK registrado en los modelos.
     */
    eArrayJDKRegistrado,
    /**
     * Indica un caso para un array de Clases del Mundo analizado.
     */
    eArrayClaseMundo,
    /**
     * Indica un caso para un array de contenedores.
     */
    eArrayCollection,
    /**
     * Indica un caso para un array de Objetos del JDK No Registrados en los modelos.
     */
    eArrayJDKNoRegistrado,
    /**
     * Indica un caso para un array de Enumeraciones.
     */
    eArrayEnumeracion;
}